#ifndef MOCKMESSAGESERIALIZER_H
#define MOCKMESSAGESERIALIZER_H

#include "protocol/IProtocolHandler.h"
#include <QJsonObject>
#include <QByteArray>
#include <QVariant>
#include <gmock/gmock.h>

/**
 * @brief Mock implementation of IMessageSerializer for testing
 * @details Provides Google Mock implementation for IMessageSerializer interface
 */
class MockMessageSerializer : public IMessageSerializer
{
public:
    MockMessageSerializer() = default;
    ~MockMessageSerializer() = default;

    MOCK_METHOD(QJsonObject, serializeSuccessResponse, (const QVariant& id, const QJsonObject& result), (override));
    MOCK_METHOD(QJsonObject, serializeErrorResponse, (const QVariant& id, int errorCode, const QJsonValue& errorData), (override));
    MOCK_METHOD(QJsonObject, serializeNotification, (const QString& method, const QJsonObject& params), (override));
    MOCK_METHOD(QByteArray, toByteArray, (const QJsonObject& jsonObject), (override));
};

#endif // MOCKMESSAGESERIALIZER_H
